/**
 * gislin 2017年7月11日
 */
package com.btcode.db.sqlparameter;

import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Set;

/**
 * @author gislin 2017年7月11日
 */
public class SQLParameterList extends HashMap<String, Object> {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    public String toString() {
        Set<Entry<String, Object>> entrys = entrySet();

        StringBuffer strBuf = new StringBuffer();

        for (Entry<String, Object> entry : entrys) {
            strBuf.append(entry.getKey() + ":" + entry.getValue() + ", ");
        }

        return strBuf.toString();
    }

    @Override
    public Object get(Object arg0) {

        Object value = super.get(arg0);

        if (value == null) {
            return null;
        }

        /**
         * 一个bug，如果这里不加判断，会导致Timestamp类型的参数也转换成Date
         */
        if (value instanceof Timestamp) {
            return value;
        }
        else if (value instanceof Date) {
            Date dateValue = (Date) value;
            Timestamp date = new java.sql.Timestamp(dateValue.getTime());

            return date;
        }

        return value;
    }

}